

<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
  <meta charset="utf-8" />
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  
  <title>rbd – 管理 RADOS 块设备（ RBD ）映像 &mdash; Ceph Documentation</title>
  

  
  <link rel="stylesheet" href="../../../_static/ceph.css" type="text/css" />
  <link rel="stylesheet" href="../../../_static/pygments.css" type="text/css" />
  <link rel="stylesheet" href="../../../_static/graphviz.css" type="text/css" />
  <link rel="stylesheet" href="../../../_static/css/custom.css" type="text/css" />

  
  
    <link rel="shortcut icon" href="../../../_static/favicon.ico"/>
  

  
  

  

  
  <!--[if lt IE 9]>
    <script src="../../../_static/js/html5shiv.min.js"></script>
  <![endif]-->
  
    
      <script type="text/javascript" id="documentation_options" data-url_root="../../../" src="../../../_static/documentation_options.js"></script>
        <script src="../../../_static/jquery.js"></script>
        <script src="../../../_static/underscore.js"></script>
        <script src="../../../_static/doctools.js"></script>
    
    <script type="text/javascript" src="../../../_static/js/theme.js"></script>

    
    <link rel="index" title="Index" href="../../../genindex/" />
    <link rel="search" title="Search" href="../../../search/" />
    <link rel="next" title="rbd-fuse – 把 rbd 映像展现为文件" href="../rbd-fuse/" />
    <link rel="prev" title="Ceph 块设备手册页" href="../../../rbd/man/" /> 
</head>

<body class="wy-body-for-nav">

   
  <header class="top-bar">
    

















<div role="navigation" aria-label="breadcrumbs navigation">

  <ul class="wy-breadcrumbs">
    
      <li><a href="../../../" class="icon icon-home"></a> &raquo;</li>
        
          <li><a href="../../../rbd/">Ceph 块设备</a> &raquo;</li>
        
          <li><a href="../../../rbd/man/">Ceph 块设备手册页</a> &raquo;</li>
        
      <li>rbd – 管理 RADOS 块设备（ RBD ）映像</li>
    
    
      <li class="wy-breadcrumbs-aside">
        
          
            <a href="../../../_sources/man/8/rbd.rst.txt" rel="nofollow"> View page source</a>
          
        
      </li>
    
  </ul>

  
  <hr/>
</div>
  </header>
  <div class="wy-grid-for-nav">
    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search"  style="background: #eee" >
          

          
            <a href="../../../">
          

          
            
            <img src="../../../_static/logo.png" class="logo" alt="Logo"/>
          
          </a>

          

          
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="../../../search/" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

          
        </div>

        
        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
          
            
            
              
            
            
              <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../../start/intro/">Ceph 简介</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../install/">安装 Ceph</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../cephadm/">Cephadm</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../rados/">Ceph 存储集群</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../cephfs/">Ceph 文件系统</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../../../rbd/">Ceph 块设备</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../../../rbd/rados-rbd-cmds/">基本命令</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../rbd/rbd-operations/">运维</a></li>
<li class="toctree-l2"><a class="reference internal" href="../../../rbd/rbd-integrations/">对接</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="../../../rbd/man/">手册页</a><ul class="current">
<li class="toctree-l3 current"><a class="current reference internal" href="#">rbd</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#id1">提纲</a></li>
<li class="toctree-l4"><a class="reference internal" href="#id2">描述</a></li>
<li class="toctree-l4"><a class="reference internal" href="#id3">选项</a></li>
<li class="toctree-l4"><a class="reference internal" href="#id4">参数</a></li>
<li class="toctree-l4"><a class="reference internal" href="#id5">命令</a></li>
<li class="toctree-l4"><a class="reference internal" href="#id6">映像、快照、组和日志的名称规范</a></li>
<li class="toctree-l4"><a class="reference internal" href="#id7">条带化</a></li>
<li class="toctree-l4"><a class="reference internal" href="#rbd-krbd">内核 rbd (krbd) 选项</a></li>
<li class="toctree-l4"><a class="reference internal" href="#id8">实例</a></li>
<li class="toctree-l4"><a class="reference internal" href="#id9">使用范围</a></li>
<li class="toctree-l4"><a class="reference internal" href="#id10">参考</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="../rbd-fuse/">rbd-fuse</a></li>
<li class="toctree-l3"><a class="reference internal" href="../rbd-nbd/">rbd-nbd</a></li>
<li class="toctree-l3"><a class="reference internal" href="../rbd-ggate/">rbd-ggate</a></li>
<li class="toctree-l3"><a class="reference internal" href="../rbdmap/">rbd-map</a></li>
<li class="toctree-l3"><a class="reference internal" href="../ceph-rbdnamer/">ceph-rbdnamer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../rbd-replay-prep/">rbd-replay-prep</a></li>
<li class="toctree-l3"><a class="reference internal" href="../rbd-replay/">rbd-replay</a></li>
<li class="toctree-l3"><a class="reference internal" href="../rbd-replay-many/">rbd-replay-many</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../../../rbd/api/">APIs</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../../radosgw/">Ceph 对象网关</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../mgr/">Ceph 管理器守护进程</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../mgr/dashboard/">Ceph 仪表盘</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../api/">API 文档</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../architecture/">体系结构</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../dev/developer_guide/">开发者指南</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../dev/internals/">Ceph 内幕</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../governance/">项目管理</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../foundation/">Ceph 基金会</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../ceph-volume/">ceph-volume</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../releases/general/">Ceph 版本（总目录）</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../releases/">Ceph 版本（索引）</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../security/">Security</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../glossary/">Ceph 术语</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../jaegertracing/">Tracing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../../translation_cn/">中文版翻译资源</a></li>
</ul>

            
          
        </div>
        
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" aria-label="top navigation">
        
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="../../../">Ceph</a>
        
      </nav>


      <div class="wy-nav-content">
        
        <div class="rst-content">
        
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
            
<div id="dev-warning" class="admonition note">
  <p class="first admonition-title">Notice</p>
  <p class="last">This document is for a development version of Ceph.</p>
</div>
  <div id="docubetter" align="right" style="padding: 5px; font-weight: bold;">
    <a href="https://pad.ceph.com/p/Report_Documentation_Bugs">Report a Documentation Bug</a>
  </div>

  
  <div class="section" id="rbd-rados-rbd">
<h1>rbd – 管理 RADOS 块设备（ RBD ）映像<a class="headerlink" href="#rbd-rados-rbd" title="Permalink to this headline">¶</a></h1>
<div class="section" id="id1">
<h2>提纲<a class="headerlink" href="#id1" title="Permalink to this headline">¶</a></h2>
<div class="line-block">
<div class="line"><strong>rbd</strong> [ -c <em>ceph.conf</em> ] [ -m <em>monaddr</em> ] [–cluster <em>cluster-name</em>]
[ -p | –pool <em>pool</em> ] [ <em>command</em> … ]</div>
</div>
</div>
<div class="section" id="id2">
<h2>描述<a class="headerlink" href="#id2" title="Permalink to this headline">¶</a></h2>
<p><strong>rbd</strong> 是个修改 rados 块设备（ RBD ）映像的工具，
QEMU/KVM 通过 Linux 内核驱动和 rbd 存储驱动使用 RBD 。
RBD 映像是简单的块设备，
它被条带化成小块对象后存储于 RADOS 对象存储集群，
条带化后的对象尺寸必须是 2 的幂。</p>
</div>
<div class="section" id="id3">
<h2>选项<a class="headerlink" href="#id3" title="Permalink to this headline">¶</a></h2>
<dl class="std option">
<dt id="cmdoption-rbd-c">
<span id="cmdoption-rbd-conf"></span><code class="sig-name descname"><span class="pre">-c</span></code><code class="sig-prename descclassname"> <span class="pre">ceph.conf</span></code><code class="sig-prename descclassname"><span class="pre">,</span> </code><code class="sig-name descname"><span class="pre">--conf</span></code><code class="sig-prename descclassname"> <span class="pre">ceph.conf</span></code><a class="headerlink" href="#cmdoption-rbd-c" title="Permalink to this definition">¶</a></dt>
<dd><p>指定 ceph.conf 配置文件，而不是用默认的 /etc/ceph/ceph.conf
来确定启动时需要的监视器。</p>
</dd></dl>

<dl class="std option">
<dt id="cmdoption-rbd-m">
<code class="sig-name descname"><span class="pre">-m</span></code><code class="sig-prename descclassname"> <span class="pre">monaddress[:port]</span></code><a class="headerlink" href="#cmdoption-rbd-m" title="Permalink to this definition">¶</a></dt>
<dd><p>连接到指定监视器，无需通过 ceph.conf 查找。</p>
</dd></dl>

<dl class="std option">
<dt id="cmdoption-rbd-cluster">
<code class="sig-name descname"><span class="pre">--cluster</span></code><code class="sig-prename descclassname"> <span class="pre">cluster-name</span></code><a class="headerlink" href="#cmdoption-rbd-cluster" title="Permalink to this definition">¶</a></dt>
<dd><p>使用非默认的集群名字，即不是 <em>ceph</em> 的集群名。</p>
</dd></dl>

<dl class="std option">
<dt id="cmdoption-rbd-p">
<span id="cmdoption-rbd-pool"></span><code class="sig-name descname"><span class="pre">-p</span></code><code class="sig-prename descclassname"> <span class="pre">pool-name</span></code><code class="sig-prename descclassname"><span class="pre">,</span> </code><code class="sig-name descname"><span class="pre">--pool</span></code><code class="sig-prename descclassname"> <span class="pre">pool-name</span></code><a class="headerlink" href="#cmdoption-rbd-p" title="Permalink to this definition">¶</a></dt>
<dd><p>在指定存储池下操作，大多数命令都得指定。</p>
</dd></dl>

<dl class="std option">
<dt id="cmdoption-rbd-namespace">
<code class="sig-name descname"><span class="pre">--namespace</span></code><code class="sig-prename descclassname"> <span class="pre">namespace-name</span></code><a class="headerlink" href="#cmdoption-rbd-namespace" title="Permalink to this definition">¶</a></dt>
<dd><p>使用存储池内一个预定义的映像命名空间。</p>
</dd></dl>

<dl class="std option">
<dt id="cmdoption-rbd-no-progress">
<code class="sig-name descname"><span class="pre">--no-progress</span></code><code class="sig-prename descclassname"></code><a class="headerlink" href="#cmdoption-rbd-no-progress" title="Permalink to this definition">¶</a></dt>
<dd><p>不显示进度（有些命令会默认输出到标准输出）。</p>
</dd></dl>

</div>
<div class="section" id="id4">
<h2>参数<a class="headerlink" href="#id4" title="Permalink to this headline">¶</a></h2>
<dl class="std option">
<dt id="cmdoption-rbd-image-format">
<code class="sig-name descname"><span class="pre">--image-format</span></code><code class="sig-prename descclassname"> <span class="pre">format-id</span></code><a class="headerlink" href="#cmdoption-rbd-image-format" title="Permalink to this definition">¶</a></dt>
<dd><p>选择用哪个对象布局，默认为 2 。</p>
<ul class="simple">
<li><p>format 1 - （已废弃）新建 rbd 映像时使用最初的格式。
此格式兼容所有版本的 librbd 和内核模块，
但是不支持较新的功能，像克隆。</p></li>
<li><p>format 2 - 使用第二 rbd 格式， librbd 从 Bobtail 版起、内核版本在 3.10 以上（ fancy 条带化功能除外，
4.17 的内核才支持）的内核 rbd 模块才支持此格式。
此格式增加了克隆支持，
使得将来扩展新功能更容易。</p></li>
</ul>
</dd></dl>

<dl class="std option">
<dt id="cmdoption-rbd-s">
<span id="cmdoption-rbd-size"></span><code class="sig-name descname"><span class="pre">-s</span></code><code class="sig-prename descclassname"> <span class="pre">size-in-M/G/T</span></code><code class="sig-prename descclassname"><span class="pre">,</span> </code><code class="sig-name descname"><span class="pre">--size</span></code><code class="sig-prename descclassname"> <span class="pre">size-in-M/G/T</span></code><a class="headerlink" href="#cmdoption-rbd-s" title="Permalink to this definition">¶</a></dt>
<dd><p>指定新 rbd 映像、或是已有 rbd 映像的新尺寸，单位可以是
M/G/T ，没加后缀的话默认为 M 。</p>
</dd></dl>

<dl class="std option">
<dt id="cmdoption-rbd-object-size">
<code class="sig-name descname"><span class="pre">--object-size</span></code><code class="sig-prename descclassname"> <span class="pre">size-in-B/K/M</span></code><a class="headerlink" href="#cmdoption-rbd-object-size" title="Permalink to this definition">¶</a></dt>
<dd><p>指定对象尺寸，单位可以是 B/K/M 。对象尺寸将被对齐到最接近的
2 的幂；如果不指定后缀，则认为单位是 B 。默认的对象尺寸是
4MB ，最小允许 4K 、最大允许 32M 。</p>
<p>这个默认值可以用配置选项 <code class="docutils literal notranslate"><span class="pre">rbd_default_order</span></code> 更改，
它是 2 的幂次（默认对象尺寸是 <code class="docutils literal notranslate"><span class="pre">2</span> <span class="pre">^</span> <span class="pre">rbd_default_order</span></code> ）。</p>
</dd></dl>

<dl class="std option">
<dt id="cmdoption-rbd-stripe-unit">
<code class="sig-name descname"><span class="pre">--stripe-unit</span></code><code class="sig-prename descclassname"> <span class="pre">size-in-B/K/M</span></code><a class="headerlink" href="#cmdoption-rbd-stripe-unit" title="Permalink to this definition">¶</a></dt>
<dd><p>指定条带单元尺寸，单位可以是 B/K/M ，没加的话默认为 B 。详情见下面的条带化一段。</p>
</dd></dl>

<dl class="std option">
<dt id="cmdoption-rbd-stripe-count">
<code class="sig-name descname"><span class="pre">--stripe-count</span></code><code class="sig-prename descclassname"> <span class="pre">num</span></code><a class="headerlink" href="#cmdoption-rbd-stripe-count" title="Permalink to this definition">¶</a></dt>
<dd><p>条带化要至少跨越多少对象才能转回第一个。
详情见条带化一节。</p>
</dd></dl>

<dl class="std option">
<dt id="cmdoption-rbd-snap">
<code class="sig-name descname"><span class="pre">--snap</span></code><code class="sig-prename descclassname"> <span class="pre">snap</span></code><a class="headerlink" href="#cmdoption-rbd-snap" title="Permalink to this definition">¶</a></dt>
<dd><p>某些操作需要指定快照名。</p>
</dd></dl>

<dl class="std option">
<dt id="cmdoption-rbd-id">
<code class="sig-name descname"><span class="pre">--id</span></code><code class="sig-prename descclassname"> <span class="pre">username</span></code><a class="headerlink" href="#cmdoption-rbd-id" title="Permalink to this definition">¶</a></dt>
<dd><p>指定 map 命令要用到的用户名（不含 <code class="docutils literal notranslate"><span class="pre">client.</span></code> 前缀）。</p>
</dd></dl>

<dl class="std option">
<dt id="cmdoption-rbd-keyring">
<code class="sig-name descname"><span class="pre">--keyring</span></code><code class="sig-prename descclassname"> <span class="pre">filename</span></code><a class="headerlink" href="#cmdoption-rbd-keyring" title="Permalink to this definition">¶</a></dt>
<dd><p>因 map 命令所需，
指定一个用户及其密钥文件。
如果未指定，从默认密钥环里找。</p>
</dd></dl>

<dl class="std option">
<dt id="cmdoption-rbd-keyfile">
<code class="sig-name descname"><span class="pre">--keyfile</span></code><code class="sig-prename descclassname"> <span class="pre">filename</span></code><a class="headerlink" href="#cmdoption-rbd-keyfile" title="Permalink to this definition">¶</a></dt>
<dd><p>因 map 命令所需，给 <code class="docutils literal notranslate"><span class="pre">--id</span> <span class="pre">user</span></code> 用户指定一个包含密钥的文件。
如果同时指定了 <code class="docutils literal notranslate"><span class="pre">--keyring</span></code> 选项，本选项就会被覆盖。</p>
</dd></dl>

<dl class="std option">
<dt id="cmdoption-rbd-shared">
<code class="sig-name descname"><span class="pre">--shared</span></code><code class="sig-prename descclassname"> <span class="pre">lock-tag</span></code><a class="headerlink" href="#cmdoption-rbd-shared" title="Permalink to this definition">¶</a></dt>
<dd><p><cite>lock add</cite> 命令的选项，它允许使用同一标签的多个客户端同时锁住同一映像。标签是任意字符串。
当某映像必须从多个客户端同时打开时，
此选项很有用，
像迁移活动虚拟机时、
或者在集群文件系统下使用时。</p>
</dd></dl>

<dl class="std option">
<dt id="cmdoption-rbd-format">
<code class="sig-name descname"><span class="pre">--format</span></code><code class="sig-prename descclassname"> <span class="pre">format</span></code><a class="headerlink" href="#cmdoption-rbd-format" title="Permalink to this definition">¶</a></dt>
<dd><p>指定输出格式，默认： plain 、 json 、 xml 。</p>
</dd></dl>

<dl class="std option">
<dt id="cmdoption-rbd-pretty-format">
<code class="sig-name descname"><span class="pre">--pretty-format</span></code><code class="sig-prename descclassname"></code><a class="headerlink" href="#cmdoption-rbd-pretty-format" title="Permalink to this definition">¶</a></dt>
<dd><p>使 json 或 xml 格式的输出更易读。</p>
</dd></dl>

<dl class="std option">
<dt id="cmdoption-rbd-o">
<span id="cmdoption-rbd-options"></span><code class="sig-name descname"><span class="pre">-o</span></code><code class="sig-prename descclassname"> <span class="pre">krbd-options</span></code><code class="sig-prename descclassname"><span class="pre">,</span> </code><code class="sig-name descname"><span class="pre">--options</span></code><code class="sig-prename descclassname"> <span class="pre">krbd-options</span></code><a class="headerlink" href="#cmdoption-rbd-o" title="Permalink to this definition">¶</a></dt>
<dd><p>通过 rbd 内核驱动映射或取消映射某一映像时指定的选项。
krbd-options 是逗号分隔的一系列选项
（类似于 mount(8) 的挂载选项）。
详情见下面的内核 rbd (krbd) 选项一段。</p>
</dd></dl>

<dl class="std option">
<dt id="cmdoption-rbd-read-only">
<code class="sig-name descname"><span class="pre">--read-only</span></code><code class="sig-prename descclassname"></code><a class="headerlink" href="#cmdoption-rbd-read-only" title="Permalink to this definition">¶</a></dt>
<dd><p>以只读方式映射到映像，等价于 -o ro 。</p>
</dd></dl>

<dl class="std option">
<dt id="cmdoption-rbd-image-feature">
<code class="sig-name descname"><span class="pre">--image-feature</span></code><code class="sig-prename descclassname"> <span class="pre">feature-name</span></code><a class="headerlink" href="#cmdoption-rbd-image-feature" title="Permalink to this definition">¶</a></dt>
<dd><p>创建格式 2 的 RBD 映像时，指定要启用哪些功能。
想要启用多个功能的话，可以多次重复使用此选项。
当前支持下列功能：</p>
<ul class="simple">
<li><p>layering: 支持分层</p></li>
<li><p>striping: 支持条带化 v2</p></li>
<li><p>exclusive-lock: 支持独占锁</p></li>
<li><p>object-map: 支持对象映射（依赖 exclusive-lock ）</p></li>
<li><p>fast-diff: 快速计算差异（依赖 object-map ）</p></li>
<li><p>deep-flatten: 支持快照扁平化操作</p></li>
<li><p>journaling: 支持记录 IO 操作（依赖独占锁）</p></li>
<li><p>data-pool: 纠删码存储池支持</p></li>
</ul>
</dd></dl>

<dl class="std option">
<dt id="cmdoption-rbd-image-shared">
<code class="sig-name descname"><span class="pre">--image-shared</span></code><code class="sig-prename descclassname"></code><a class="headerlink" href="#cmdoption-rbd-image-shared" title="Permalink to this definition">¶</a></dt>
<dd><p>指定该映像将被多个客户端同时使用。
此选项将禁用那些依赖于独占所有权的功能。</p>
</dd></dl>

<dl class="std option">
<dt id="cmdoption-rbd-whole-object">
<code class="sig-name descname"><span class="pre">--whole-object</span></code><code class="sig-prename descclassname"></code><a class="headerlink" href="#cmdoption-rbd-whole-object" title="Permalink to this definition">¶</a></dt>
<dd><p>把 diff 操作范围限定在完整的对象条带级别，
而非对象内差异。
当某一映像启用了 object-map 功能时，
把 diff 操作限定到对象条带会显著地提高性能，
因为通过检查驻留于内存中的对象映射就可以计算出差异，
而无需针对映像内的各个对象查询 RADOS 。</p>
</dd></dl>

<dl class="std option">
<dt id="cmdoption-rbd-limit">
<code class="sig-name descname"><span class="pre">--limit</span></code><code class="sig-prename descclassname"></code><a class="headerlink" href="#cmdoption-rbd-limit" title="Permalink to this definition">¶</a></dt>
<dd><p>指定快照的数量上限。</p>
</dd></dl>

</div>
<div class="section" id="id5">
<h2>命令<a class="headerlink" href="#id5" title="Permalink to this headline">¶</a></h2>
<dl>
<dt><strong class="command">bench</strong> –io-type &lt;read | write | readwrite | rw&gt; [–io-size <em>size-in-B/K/M/G/T</em>] [–io-threads <em>num-ios-in-flight</em>] [–io-total <em>size-in-B/K/M/G/T</em>] [–io-pattern seq | rand] [–rw-mix-read <em>read proportion in readwrite</em>] <em>image-spec</em></dt><dd><p>向指定映像生成一系列 IO 操作，以此衡量 IO 吞吐量和延时。如果不加后缀， –io-size 和 –io-total 的单位就当是 B 。默认参数为 –io-size 4096 、 –io-threads 16 、 –io-total 1G 、 –io-pattern seq 、 –rw-mix-read 50 。</p>
</dd>
<dt><strong class="command">children</strong> <em>snap-spec</em></dt><dd><p>列出此映像指定快照的克隆品。它会检查各存储池、并输出存储池名/映像名。</p>
<p>只适用于 format 2 。</p>
</dd>
<dt><strong class="command">clone</strong> [–object-size <em>size-in-B/K/M</em>] [–stripe-unit <em>size-in-B/K/M</em> –stripe-count <em>num</em>] [–image-feature <em>feature-name</em>] [–image-shared] <em>parent-snap-spec</em> <em>child-image-spec</em></dt><dd><p>创建一个父快照的克隆品（写时复制子映像）。
若不指定，对象尺寸将与父映像完全一样。
尺寸和父快照一样。
参数 –stripe-unit 和 –stripe-count 是可选的，但必须同时使用。</p>
<p>父快照必须已被保护（见 <cite>rbd snap protect</cite> ）。
format 2 格式的映像才支持。</p>
</dd>
<dt><strong class="command">config global get</strong> <em>config-entity</em> <em>key</em></dt><dd><p>查看一条全局级的配置选项覆盖。</p>
</dd>
<dt><strong class="command">config global list</strong> [–format plain | json | xml] [–pretty-format] <em>config-entity</em></dt><dd><p>罗列全局级的配置选项覆盖。</p>
</dd>
<dt><strong class="command">config global set</strong> <em>config-entity</em> <em>key</em> <em>value</em></dt><dd><p>设置一条全局级的配置选项覆盖。</p>
</dd>
<dt><strong class="command">config global remove</strong> <em>config-entity</em> <em>key</em></dt><dd><p>删除一条全局级的配置选项覆盖。</p>
</dd>
<dt><strong class="command">config image get</strong> <em>image-spec</em> <em>key</em></dt><dd><p>查看一条映像级的配置选项覆盖。</p>
</dd>
<dt><strong class="command">config image list</strong> [–format plain | json | xml] [–pretty-format] <em>image-spec</em></dt><dd><p>罗列映像级的配置选项覆盖。.</p>
</dd>
<dt><strong class="command">config image set</strong> <em>image-spec</em> <em>key</em> <em>value</em></dt><dd><p>设置一条映像级的配置选项覆盖。</p>
</dd>
<dt><strong class="command">config image remove</strong> <em>image-spec</em> <em>key</em></dt><dd><p>删除一条映像级的配置选项覆盖。</p>
</dd>
<dt><strong class="command">config pool get</strong> <em>pool-name</em> <em>key</em></dt><dd><p>查看一条存储池级的配置选项覆盖。</p>
</dd>
<dt><strong class="command">config pool list</strong> [–format plain | json | xml] [–pretty-format] <em>pool-name</em></dt><dd><p>罗列存储池级的配置选项覆盖。.</p>
</dd>
<dt><strong class="command">config pool set</strong> <em>pool-name</em> <em>key</em> <em>value</em></dt><dd><p>配置一条存储池级的配置选项覆盖。</p>
</dd>
<dt><strong class="command">config pool remove</strong> <em>pool-name</em> <em>key</em></dt><dd><p>删除一条存储池级的配置选项覆盖。</p>
</dd>
<dt><strong class="command">cp</strong> (<em>src-image-spec</em> | <em>src-snap-spec</em>) <em>dest-image-spec</em></dt><dd><p>把源映像内容复制进新建的目标映像，
目标映像和源映像将有相同的尺寸、对象尺寸和映像格式。
注意：它的快照没有复制，
用 <cite>deep cp</cite> 命令包含快照。</p>
</dd>
<dt><strong class="command">create</strong> (-s | –size <em>size-in-M/G/T</em>) [–image-format <em>format-id</em>] [–object-size <em>size-in-B/K/M</em>] [–stripe-unit <em>size-in-B/K/M</em> –stripe-count <em>num</em>] [–thick-provision] [–no-progress] [–image-feature <em>feature-name</em>]… [–image-shared] <em>image-spec</em></dt><dd><p>新建一个 rbd 映像。还必须用 –size 指定尺寸。 –strip-unit 和
–strip-count 参数是可选项，但必须一起用。如果加了
–thick-provision 选项，它会在创建时就为映像分配所需的所有存储空间，需要很长时间完成。注意：全配（ thick provisioning
）要求把整个映像的内容都清零。</p>
</dd>
<dt><strong class="command">deep cp</strong> (<em>src-image-spec</em> | <em>src-snap-spec</em>) <em>dest-image-spec</em></dt><dd><p>把 src-image 的内容深复制到新建的 dest-image 。 dest-image
将会有和 src-image 相同的尺寸、对象尺寸、映像格式、和快照。</p>
</dd>
<dt><strong class="command">device list</strong> [-t | –device-type <em>device-type</em>] [–format plain | json | xml] –pretty-format</dt><dd><p>展示通过 rbd 内核模块映射的 rbd 映像（默认的）或其它支持的设备。</p>
</dd>
<dt><strong class="command">device map</strong> [-t | –device-type <em>device-type</em>] [–cookie <em>device-cookie</em>] [–show-cookie] [–read-only] [–exclusive] [-o | –options <em>device-options</em>] <em>image-spec</em> | <em>snap-spec</em></dt><dd><p>把指定映像通过 rbd 内核模块映射成一个块设备（默认的）、
或其它支持的设备
（ Linux 上的 <em>nbd</em> 或 FreeBSD 上的 <em>ggate</em> ）。</p>
<p>–options 参数是个逗号分隔的特定于某类型设备的一系列选项
（ opt1,opt2=val,… ）。</p>
</dd>
<dt><strong class="command">device unmap</strong> [-t | –device-type <em>device-type</em>] [-o | –options <em>device-options</em>] <em>image-spec</em> | <em>snap-spec</em> | <em>device-path</em></dt><dd><p>断开块设备映射，之前通过 rbd 内核模块映射的（默认的）、
或其它支持的设备。</p>
<p>–options 参数是个逗号分隔的特定于某类型设备的一系列选项
（ opt1,opt2=val,… ）。</p>
</dd>
<dt><strong class="command">device attach</strong> [-t | –device-type <em>device-type</em>] –device <em>device-path</em> [–cookie <em>device-cookie</em>] [–show-cookie] [–read-only] [–exclusive] [–force] [-o | –options <em>device-options</em>] <em>image-spec</em> | <em>snap-spec</em></dt><dd><p>把指定映像捆绑到指定块设备（当前仅适用于 Linux 上的 <cite>nbd</cite> ）。
此操作不安全，平常不应该使用。
特别是，指定了错误的映像或错误的块设备可能会导致数据损坏，
因为 <cite>nbd</cite> 内核驱动不会进行核实。</p>
<p>–options 参数是一个逗号分隔的、特定于设备类型的选项
（ opt1,opt2=val,… ）列表。</p>
</dd>
<dt><strong class="command">device detach</strong> [-t | –device-type <em>device-type</em>] [-o | –options <em>device-options</em>] <em>image-spec</em> | <em>snap-spec</em> | <em>device-path</em></dt><dd><p>解绑之前映射或绑定（当前仅适用于 Linux 上的 <cite>nbd</cite> ）的块设备。
此操作不安全，平常不应该使用。</p>
<p>–options 参数是一个逗号分隔的、特定于设备类型的选项
（ opt1,opt2=val,… ）列表。</p>
</dd>
<dt><strong class="command">diff</strong> [–from-snap <em>snap-name</em>] [–whole-object] <em>image-spec</em> | <em>snap-spec</em></dt><dd><p>打印出从指定快照点起、或从映像创建点起，映像内的变动区域。
输出的各行都包含起始偏移量（按字节）、
数据块长度（按字节）、还有 zero 或 data ，
用来指示此范围以前是 0 还是其它数据。</p>
</dd>
<dt><strong class="command">du</strong> [-p | –pool <em>pool-name</em>] [<em>image-spec</em> | <em>snap-spec</em>] [–merge-snapshots]</dt><dd><p>会计算指定存储池内所有映像及其相关快照的磁盘使用量，
包括分配的和实际使用的。
此命令也可用于单个映像和快照。</p>
<p>如果 RBD 映像的 fast-diff 特性没启用，本操作就需要向各个 OSD
挨个查询此映像涉及的每个潜在对象。</p>
<p>–merge-snapshots 会把快照占用的空间算到它的父映像头上。</p>
</dd>
<dt><strong class="command">encryption format</strong> <em>image-spec</em> <em>format</em> <em>passphrase-file</em> [–cipher-alg <em>alg</em>]</dt><dd><p>把映像格式化成加密格式。
之前写入此映像的所有数据都将不可读。
虽然加密的映像可以被克隆，但是克隆的映像不能被格式化。
支持的格式有： <em>luks1</em> 、 <em>luks2</em> 。
支持的加密算法： <em>aes-128</em> 、 <em>aes-256</em> （默认）。</p>
</dd>
<dt><strong class="command">export</strong> [–export-format <em>format (1 or 2)</em>] (<em>image-spec</em> | <em>snap-spec</em>) [<em>dest-path</em>]</dt><dd><p>把映像导出到目的路径，用 - （短线）输出到标准输出。
–export-format 现在只认 ‘1’ 或 ‘2’ 。格式 2 不仅允许我们导出映像内容，还可以导出快照和其它属性，如 image_order 、功能标志。</p>
</dd>
<dt><strong class="command">export-diff</strong> [–from-snap <em>snap-name</em>] [–whole-object] (<em>image-spec</em> | <em>snap-spec</em>) <em>dest-path</em></dt><dd><p>导出一映像的增量差异，用-导出到标准输出。
若给了起始快照，就只包含与此快照的差异部分；
否则包含映像的所有数据部分；
结束快照用 –snap 选项或 &#64;snap （见下文）指定。
此映像的差异格式包含了映像尺寸变更的元数据、起始和结束快照，
它高效地表达了被忽略或映像内的全 0 区域。</p>
</dd>
<dt><strong class="command">feature disable</strong> <em>image-spec</em> <em>feature-name</em>…</dt><dd><p>禁用指定镜像的某些功能，
可以一次指定多个功能。</p>
</dd>
<dt><strong class="command">feature enable</strong> <em>image-spec</em> <em>feature-name</em>…</dt><dd><p>启用指定镜像的某些功能，
可以一次指定多个功能。</p>
</dd>
<dt><strong class="command">flatten</strong> <em>image-spec</em></dt><dd><p>如果映像是个克隆品，就从父快照拷贝所有共享块，
并使子快照独立于父快照、切断父子快照间的链接。
如果没有克隆品引用此父快照了，
就可以取消保护并删除。</p>
<p>只适用于 format 2 。</p>
</dd>
<dt><strong class="command">group create</strong> <em>group-spec</em></dt><dd><p>创建一个组。</p>
</dd>
<dt><strong class="command">group image add</strong> <em>group-spec</em> <em>image-spec</em></dt><dd><p>把一个映像加入某一组。</p>
</dd>
<dt><strong class="command">group image list</strong> <em>group-spec</em></dt><dd><p>罗列一个组内的映像。</p>
</dd>
<dt><strong class="command">group image remove</strong> <em>group-spec</em> <em>image-spec</em></dt><dd><p>删除一个组内的对象。</p>
</dd>
<dt><strong class="command">group ls</strong> [-p | –pool <em>pool-name</em>]</dt><dd><p>罗列所有 rbd 组。</p>
</dd>
<dt><strong class="command">group rename</strong> <em>src-group-spec</em> <em>dest-group-spec</em></dt><dd><p>重命名一个组。注意：不支持跨存储池重命名。</p>
</dd>
<dt><strong class="command">group rm</strong> <em>group-spec</em></dt><dd><p>删除一个组。</p>
</dd>
<dt><strong class="command">group snap create</strong> <em>group-snap-spec</em></dt><dd><p>创建一个组的快照。</p>
</dd>
<dt><strong class="command">group snap list</strong> <em>group-spec</em></dt><dd><p>罗列一个组的快照。</p>
</dd>
<dt><strong class="command">group snap rm</strong> <em>group-snap-spec</em></dt><dd><p>删除一个组的某一快照。</p>
</dd>
<dt><strong class="command">group snap rename</strong> <em>group-snap-spec</em> <em>snap-name</em></dt><dd><p>重命名组的快照。</p>
</dd>
<dt><strong class="command">group snap rollback</strong> <em>group-snap-spec</em></dt><dd><p>把组回滚到某快照。</p>
</dd>
<dt><strong class="command">image-meta get</strong> <em>image-spec</em> <em>key</em></dt><dd><p>获取关键字对应的元数据值。</p>
</dd>
<dt><strong class="command">image-meta list</strong> <em>image-spec</em></dt><dd><p>显示此映像持有的元数据。第一列是关键字、第二列是值。</p>
</dd>
<dt><strong class="command">image-meta remove</strong> <em>image-spec</em> <em>key</em></dt><dd><p>删除元数据关键字及其值。</p>
</dd>
<dt><strong class="command">image-meta set</strong> <em>image-spec</em> <em>key</em> <em>value</em></dt><dd><p>设置指定元数据关键字的值，会显示在 <cite>metadata-list</cite> 中。</p>
</dd>
<dt><strong class="command">import</strong> [–export-format <em>format (1 or 2)</em>] [–image-format <em>format-id</em>] [–object-size <em>size-in-B/K/M</em>] [–stripe-unit <em>size-in-B/K/M</em> –stripe-count <em>num</em>] [–image-feature <em>feature-name</em>]… [–image-shared] <em>src-path</em> [<em>image-spec</em>]</dt><dd><p>创建一映像，并从目的路径导入数据，用 - （短线）从标准输入导入。
如果可能的话，导入操作会试着创建稀疏映像。
如果从标准输入导入，稀疏化单位将是目标映像的数据块尺寸
（即对象尺寸）。</p>
<p>参数 –stripe-unit 和 –stripe-count 是可选的，
但必须同时使用。</p>
<p>–export-format 现在只认 ‘1’ 或 ‘2’ 。格式 2 不仅允许我们导出映像内容，还可以导出快照和其它属性，如 image_order 、功能标志。</p>
</dd>
<dt><strong class="command">import-diff</strong> <em>src-path</em> <em>image-spec</em></dt><dd><p>导入一映像的增量差异并应用到当前映像。
如果此差异是在起始快照基础上生成的，我们会先校验那个已存在快照再继续；
如果指定了结束快照，我们先检查它是否存在、再应用变更，
结束后再创建结束快照。</p>
</dd>
<dt><strong class="command">info</strong> <em>image-spec</em> | <em>snap-spec</em></dt><dd><p>显示指定 rbd 映像的信息（如大小和对象尺寸）。
若映像是克隆品，会显示相关父快照；
若指定了快照，会显示是否被保护。</p>
</dd>
<dt><strong class="command">journal client disconnect</strong> <em>journal-spec</em></dt><dd><p>把映像日志客户端标记为连接已断。</p>
</dd>
<dt><strong class="command">journal export</strong> [–verbose] [–no-error] <em>src-journal-spec</em> <em>path-name</em></dt><dd><p>把映像日志导出到指定路径（ <code class="docutils literal notranslate"><span class="pre">-</span></code> 导出到标准输出 stdout ）。它可以作为映像日志的备份手段，特别是打算做危险的操作前。</p>
<p>注意，如果日志损坏严重，此命令有可能失效。</p>
</dd>
<dt><strong class="command">journal import</strong> [–verbose] [–no-error] <em>path-name</em> <em>dest-journal-spec</em></dt><dd><p>从指定路径导入映像日志（ <code class="docutils literal notranslate"><span class="pre">-</span></code> 从标准输入 stdin 导入）。</p>
</dd>
<dt><strong class="command">journal info</strong> <em>journal-spec</em></dt><dd><p>展示映像日志的信息。</p>
</dd>
<dt><strong class="command">journal inspect</strong> [–verbose] <em>journal-spec</em></dt><dd><p>检查并报告映像日志的结构性错误。</p>
</dd>
<dt><strong class="command">journal reset</strong> <em>journal-spec</em></dt><dd><p>重置映像日志。</p>
</dd>
<dt><strong class="command">journal status</strong> <em>journal-spec</em></dt><dd><p>展示映像日志的状态。</p>
</dd>
<dt><strong class="command">lock add</strong> [–shared <em>lock-tag</em>] <em>image-spec</em> <em>lock-id</em></dt><dd><p>为映像加锁，锁标识是用户一己所好的任意名字。
默认加的是互斥锁，也就是说如果已经加过锁的话此命令会失败；
–shared 选项会改变此行为。
注意，加锁操作本身不影响除加锁之外的任何操作，
也不会保护对象、
防止它被删除。</p>
</dd>
<dt><strong class="command">lock ls</strong> <em>image-spec</em></dt><dd><p>显示锁着映像的锁，
第一列是 <cite>lock remove</cite> 可以使用的锁名。</p>
</dd>
<dt><strong class="command">lock rm</strong> <em>image-spec</em> <em>lock-id</em> <em>locker</em></dt><dd><p>释放映像上的锁。
锁标识和其持有者来自 lock ls 。</p>
</dd>
<dt><strong class="command">ls</strong> [-l | –long] [<em>pool-name</em>]</dt><dd><p>列出 rbd_directory 对象中的所有 rbd 映像。加 -l 选项后也会列出快照，并用长格式输出，包括大小、父映像（若是克隆品）、格式等等。</p>
</dd>
<dt><strong class="command">merge-diff</strong> <em>first-diff-path</em> <em>second-diff-path</em> <em>merged-diff-path</em></dt><dd><p>把两个连续的增量差异合并为单个差异。前一个差异的末尾快照必须与后一个差异的起始快照相同。前一个差异可以是标准输入 - ，合并后的差异可以是标准输出 - ；这样就可以合并多个差异文件，像这样： ‘rbd merge-diff first second - | rbd merge-diff - third result’ 。注意，当前此命令只支持 stripe_count == 1 这样的源增量差异。</p>
</dd>
<dt><strong class="command">migration abort</strong> <em>image-spec</em></dt><dd><p>取消映像迁移。这个步骤在成功或失败的迁移准备、
各个迁移执行步骤之后运行，
并让映像回到它最初（迁移前）的状态。
目的映像的所有更改都将丢失。</p>
</dd>
<dt><strong class="command">migration commit</strong> <em>image-spec</em></dt><dd><p>提交映像迁移。这个步骤在成功的迁移准备、
迁移执行的各个步骤、并删除源映像数据后运行。</p>
</dd>
<dt><strong class="command">migration execute</strong> <em>image-spec</em></dt><dd><p>执行映像迁移。这个步骤在成功的迁移准备步骤、
并把映像数据复制到目的地之后运行。</p>
</dd>
<dt><strong class="command">migration prepare</strong> [–order <em>order</em>] [–object-size <em>object-size</em>] [–image-feature <em>image-feature</em>] [–image-shared] [–stripe-unit <em>stripe-unit</em>] [–stripe-count <em>stripe-count</em>] [–data-pool <em>data-pool</em>] [–import-only] [–source-spec <em>json</em>] [–source-spec-path <em>path</em>] <em>src-image-spec</em> [<em>dest-image-spec</em>]</dt><dd><p>准备映像迁移。这是迁移一个映像的第一步，
即改变映像的位置，格式或其它参数不能动态更改。
在目标和源的规格一致时，可以忽略 <em>dest-image-spec</em> 。
本步骤之后，源映像将被设置成目标映像的父映像，
这个映像将可以按照目标规格、
通过写时复制模式访问。</p>
<p>映像也可以从一个只读导入源迁移，
加可选的 <em>–import-only</em> 、
并加上 JSON 编码的 <em>–source-spec</em> 或用 <em>–source-spec-path</em> 指定一个 JSON 编码的源规格文件路径。</p>
</dd>
<dt><strong class="command">mirror image demote</strong> <em>image-spec</em></dt><dd><p>把 RBD 映像中的主映像降级成非主映像。</p>
</dd>
<dt><strong class="command">mirror image disable</strong> [–force] <em>image-spec</em></dt><dd><p>禁用一个映像的 RBD 镜像服务。
如果镜像服务是在 <code class="docutils literal notranslate"><span class="pre">image</span></code> 模式下在镜像存储池上配置的，
那该存储池内各个映像的镜像服务就可以显式地禁用。</p>
</dd>
<dt><strong class="command">mirror image enable</strong> <em>image-spec</em> <em>mode</em></dt><dd><p>启用一个映像的 RBD 镜像服务。
如果镜像服务是在 <code class="docutils literal notranslate"><span class="pre">image</span></code> 模式下在镜像存储池上配置的，
那该存储池内各个映像的镜像服务就可以显式地启用。</p>
<p>镜像映像的模式还可以是 <code class="docutils literal notranslate"><span class="pre">journal</span></code> （默认的）
或 <code class="docutils literal notranslate"><span class="pre">snapshot</span></code> 。 <code class="docutils literal notranslate"><span class="pre">journal</span></code> 模式依赖
RBD 的日志记录功能。</p>
</dd>
<dt><strong class="command">mirror image promote</strong> [–force] <em>image-spec</em></dt><dd><p>为 RBD 镜像服务把一个非主映像晋级成主的。</p>
</dd>
<dt><strong class="command">mirror image resync</strong> <em>image-spec</em></dt><dd><p>在 RBD 镜像中，强制重新同步到主映像。</p>
</dd>
<dt><strong class="command">mirror image status</strong> <em>image-spec</em></dt><dd><p>显示一个映像的 RBD 镜像状态。</p>
</dd>
<dt><strong class="command">mirror pool demote</strong> [<em>pool-name</em>]</dt><dd><p>把一个存储池内的所有主映像都降级成非主的。
存储池内每个启用了镜像服务的映像都会被降级。</p>
</dd>
<dt><strong class="command">mirror pool disable</strong> [<em>pool-name</em>]</dt><dd><p>默认禁用一个存储池的 RBD 镜像服务。
某个存储池的镜像服务以这种方式禁用后，
此存储池内的所有映像的镜像、包括那些显式地启用了镜像服务的也会禁用。</p>
</dd>
<dt><strong class="command">mirror pool enable</strong> [<em>pool-name</em>] <em>mode</em></dt><dd><p>启用一个存储池的默认镜像。
镜像模式可以是 <code class="docutils literal notranslate"><span class="pre">pool</span></code> 或 <code class="docutils literal notranslate"><span class="pre">image</span></code> 。
如果配置成了 <code class="docutils literal notranslate"><span class="pre">pool</span></code> 模式，存储池内所有开启了日志功能的映像都会被镜像；
如果配置成了 <code class="docutils literal notranslate"><span class="pre">image</span></code> 模式，
每个映像的镜像功能都需要显式地启用
（用 <code class="docutils literal notranslate"><span class="pre">mirror</span> <span class="pre">image</span> <span class="pre">enable</span></code> 命令）。</p>
</dd>
<dt><strong class="command">mirror pool info</strong> [<em>pool-name</em>]</dt><dd><p>显示出存储池的镜像服务配置信息。
它包括镜像模式、互联的 UUID 、
远程集群名字和远程客户端名字。</p>
</dd>
<dt><strong class="command">mirror pool peer add</strong> [<em>pool-name</em>] <em>remote-cluster-spec</em></dt><dd><p>给存储池增加一个镜像互联点。
<em>remote-cluster-spec</em> 是 [<em>远程客户端名</em>&#64;]<em>远程集群名</em>.</p>
<p><em>远程客户端名</em> 默认是 client.admin 。</p>
<p>此命令要求先启用镜像模式。</p>
</dd>
<dt><strong class="command">mirror pool peer remove</strong> [<em>pool-name</em>] <em>uuid</em></dt><dd><p>删除一个存储池的镜像互联点，此互联点的 uuid 可以通过 <code class="docutils literal notranslate"><span class="pre">mirror</span> <span class="pre">pool</span> <span class="pre">info</span></code> 获取。</p>
</dd>
<dt><strong class="command">mirror pool peer set</strong> [<em>pool-name</em>] <em>uuid</em> <em>key</em> <em>value</em></dt><dd><p>更新镜像互联点配置信息。
键（ key ）是 <code class="docutils literal notranslate"><span class="pre">client</span></code> 或 <code class="docutils literal notranslate"><span class="pre">cluster</span></code> ，
值对应远程客户端名或远程集群名。</p>
</dd>
<dt><strong class="command">mirror pool promote</strong> [–force] [<em>pool-name</em>]</dt><dd><p>把一个存储池内的所有非主映像晋级成主的。
此存储池里所有启用了镜像服务的映像都会晋级。</p>
</dd>
<dt><strong class="command">mirror pool status</strong> [–verbose] [<em>pool-name</em>]</dt><dd><p>显示此存储池内所有被镜像的映像的状态。
加 –verbose 选项后，还会显示存储池内、
所有启用了镜像的映像的额外状态细节。</p>
</dd>
<dt><strong class="command">mirror snapshot schedule add</strong> [-p | –pool <em>pool</em>] [–namespace <em>namespace</em>] [–image <em>image</em>] <em>interval</em> [<em>start-time</em>]</dt><dd><p>预定镜像快照。</p>
</dd>
<dt><strong class="command">mirror snapshot schedule list</strong> [-R | –recursive] [–format <em>format</em>] [–pretty-format] [-p | –pool <em>pool</em>] [–namespace <em>namespace</em>] [–image <em>image</em>]</dt><dd><p>罗列镜像快照的预定情况。</p>
</dd>
<dt><strong class="command">mirror snapshot schedule remove</strong> [-p | –pool <em>pool</em>] [–namespace <em>namespace</em>] [–image <em>image</em>] <em>interval</em> [<em>start-time</em>]</dt><dd><p>删除镜像快照的预定任务。</p>
</dd>
<dt><strong class="command">mirror snapshot schedule status</strong> [-p | –pool <em>pool</em>] [–format <em>format</em>] [–pretty-format] [–namespace <em>namespace</em>] [–image <em>image</em>]</dt><dd><p>显示镜像快照的预定状态。</p>
</dd>
<dt><strong class="command">mv</strong> <em>src-image-spec</em> <em>dest-image-spec</em></dt><dd><p>映像改名。注：不支持跨存储池。</p>
</dd>
<dt><strong class="command">namespace create</strong> <em>pool-name</em>/<em>namespace-name</em></dt><dd><p>在存储池内新建一个映像命名空间。</p>
</dd>
<dt><strong class="command">namespace list</strong> <em>pool-name</em></dt><dd><p>罗列存储池内定义的映像命名空间。</p>
</dd>
<dt><strong class="command">namespace remove</strong> <em>pool-name</em>/<em>namespace-name</em></dt><dd><p>从存储池删除一个空的映像命名空间。</p>
</dd>
<dt><strong class="command">object-map check</strong> <em>image-spec</em> | <em>snap-spec</em></dt><dd><p>核验对象映射图是否正确。</p>
</dd>
<dt><strong class="command">object-map rebuild</strong> <em>image-spec</em> | <em>snap-spec</em></dt><dd><p>为指定映像重建无效的对象映射关系。指定映像快照时，
将为此快照重建无效的对象映射关系。</p>
</dd>
<dt><strong class="command">pool init</strong> [<em>pool-name</em>] [–force]</dt><dd><p>初始化用于 RBD 的存储池。
新建的存储池必须先初始化才能使用。</p>
</dd>
<dt><strong class="command">resize</strong> (-s | –size <em>size-in-M/G/T</em>) [–allow-shrink] <em>image-spec</em></dt><dd><p>rbd 大小调整。尺寸参数必须指定；
–allow-shrink 选项允许缩小。</p>
</dd>
<dt><strong class="command">rm</strong> <em>image-spec</em></dt><dd><p>删除一 rbd 映像，包括所有数据块。如果此映像有快照，此命令会失效，什么也不会删除。</p>
</dd>
<dt><strong class="command">snap create</strong> <em>snap-spec</em></dt><dd><p>新建一快照。需指定快照名。</p>
</dd>
<dt><strong class="command">snap limit clear</strong> <em>image-spec</em></dt><dd><p>清除先前设置的映像所允许的快照数量上限。</p>
</dd>
<dt><strong class="command">snap limit set</strong> [–limit] <em>limit</em> <em>image-spec</em></dt><dd><p>设置一个映像所允许的快照数量上限。</p>
</dd>
<dt><strong class="command">snap ls</strong> <em>image-spec</em></dt><dd><p>列出一映像内的快照。</p>
</dd>
<dt><strong class="command">snap protect</strong> <em>snap-spec</em></dt><dd><p>保护快照，防删除，这样才能从它克隆（见 <cite>rbd clone</cite> ）。
做克隆前必须先保护快照，
保护意味着克隆出的子快照依赖于此快照。
<cite>rbd clone</cite> 不能在未保护的快照上操作。</p>
<p>只适用于 format 2 。</p>
</dd>
<dt><strong class="command">snap purge</strong> <em>image-spec</em></dt><dd><p>删除一映像的所有未保护快照。</p>
</dd>
<dt><strong class="command">snap rename</strong> <em>src-snap-spec</em> <em>dest-snap-spec</em></dt><dd><p>重命名一个快照。注意：不支持跨存储池和跨映像重命名。</p>
</dd>
<dt><strong class="command">snap rm</strong> [–force] <em>snap-spec</em></dt><dd><p>删除指定快照。</p>
</dd>
<dt><strong class="command">snap rollback</strong> <em>snap-spec</em></dt><dd><p>把指定映像回滚到快照。此动作会递归整个块阵列，
并把数据头内容更新到快照版本。</p>
</dd>
<dt><strong class="command">snap unprotect</strong> <em>snap-spec</em></dt><dd><p>取消对快照的保护（撤销 <cite>snap protect</cite> ）。如果还有克隆出的子快照尚在， <cite>snap unprotect</cite> 命令会失效。（注意克隆品可能位于不同于父快照的存储池。）</p>
<p>只适用于 format 2 。</p>
</dd>
<dt><strong class="command">sparsify</strong> [–sparse-size <em>sparse-size</em>] <em>image-spec</em></dt><dd><p>回收已被清零的映像条带所占的空间。
默认的稀疏尺寸为 4096 字节，可用 –sparse-size 选项更改，
但有这些限制条件：它应该是 2 幂、不小于 4096 、
且不大于映像的对象尺寸。</p>
</dd>
<dt><strong class="command">status</strong> <em>image-spec</em></dt><dd><p>显示映像状态，包括哪个客户端打开着它。</p>
</dd>
<dt><strong class="command">trash ls</strong> [<em>pool-name</em>]</dt><dd><p>罗列垃圾桶内的所有条目。</p>
</dd>
<dt><strong class="command">trash mv</strong> <em>image-spec</em></dt><dd><p>把映像移入垃圾桶。所有映像，包括正被克隆件引用的，
都能被移入垃圾桶，而后删除。</p>
</dd>
<dt><strong class="command">trash purge</strong> [<em>pool-name</em>]</dt><dd><p>删除垃圾桶内所有过期的映像。</p>
</dd>
<dt><strong class="command">trash restore</strong> <em>image-id</em></dt><dd><p>从垃圾桶恢复一个映像。</p>
</dd>
<dt><strong class="command">trash rm</strong> <em>image-id</em></dt><dd><p>从垃圾桶删除一个映像。如果映像的延期时间尚未满，
那就不能删除，除非强删。但是正被克隆件引用的、
或还有快照的删不掉。</p>
</dd>
<dt><strong class="command">trash purge schedule add</strong> [-p | –pool <em>pool</em>] [–namespace <em>namespace</em>] <em>interval</em> [<em>start-time</em>]</dt><dd><p>预定一次垃圾清理。</p>
</dd>
<dt><strong class="command">trash purge schedule list</strong> [-R | –recursive] [–format <em>format</em>] [–pretty-format] [-p | –pool <em>pool</em>] [–namespace <em>namespace</em>]</dt><dd><p>罗列垃圾清理的预定情况。</p>
</dd>
<dt><strong class="command">trash purge schedule remove</strong> [-p | –pool <em>pool</em>] [–namespace <em>namespace</em>] <em>interval</em> [<em>start-time</em>]</dt><dd><p>删除垃圾清理的预定任务。</p>
</dd>
<dt><strong class="command">trash purge schedule status</strong> [-p | –pool <em>pool</em>] [–format <em>format</em>] [–pretty-format] [–namespace <em>namespace</em>]</dt><dd><p>显示垃圾清理的预定状态。</p>
</dd>
<dt><strong class="command">watch</strong> <em>image-spec</em></dt><dd><p>盯着有关此映像的事件。</p>
</dd>
</dl>
</div>
<div class="section" id="id6">
<h2>映像、快照、组和日志的名称规范<a class="headerlink" href="#id6" title="Permalink to this headline">¶</a></h2>
<div class="line-block">
<div class="line"><em>image-spec</em>      is [<em>pool-name</em>/[<em>namespace-name</em>/]]<em>image-name</em></div>
<div class="line"><em>snap-spec</em>       is [<em>pool-name</em>/[<em>namespace-name</em>/]]<em>image-name</em>&#64;<em>snap-name</em></div>
<div class="line"><em>group-spec</em>      is [<em>pool-name</em>/[<em>namespace-name</em>/]]<em>group-name</em></div>
<div class="line"><em>group-snap-spec</em> is [<em>pool-name</em>/[<em>namespace-name</em>/]]<em>group-name</em>&#64;<em>snap-name</em></div>
<div class="line"><em>journal-spec</em>    is [<em>pool-name</em>/[<em>namespace-name</em>/]]<em>journal-name</em></div>
</div>
<p><em>pool-name</em> 的默认值是 rbd 、 <em>namespace-name</em> 默认是 “” （为空）。
如果某个映像名包含斜杠字符（ / ），那么还必须指定 <em>pool-name</em> 。</p>
<p><em>journal-name</em> 是 <em>image-id</em> 。</p>
<p>你可以用 –pool 、 –namespace 、 –image 和 –snap 选项分别指定各个名字，但是不鼓励这样用，大家还是倾向于上面的规范语法。</p>
</div>
<div class="section" id="id7">
<h2>条带化<a class="headerlink" href="#id7" title="Permalink to this headline">¶</a></h2>
<p>RBD 映像被条带化到很多对象，然后存储到 Ceph 分布式对象存储（ RADOS ）集群中。
因此，到此映像的读和写请求会被分布到集群内的很多节点，
也因此避免了映像巨大或繁忙时可能出现的单节点瓶颈。</p>
<p>条带化由三个参数控制：</p>
<dl class="std option">
<dt id="cmdoption-rbd-arg-object-size">
<code class="sig-name descname"><span class="pre">object-size</span></code><code class="sig-prename descclassname"></code><a class="headerlink" href="#cmdoption-rbd-arg-object-size" title="Permalink to this definition">¶</a></dt>
<dd><p>条带化产生的对象尺寸是 2 的幂，它会被对齐到最接近的 2 的幂。
默认对象尺寸是 4MB ，最小是 4K 、最大 32 M 。</p>
</dd></dl>

<dl class="std option">
<dt id="cmdoption-rbd-arg-stripe_unit">
<span id="cmdoption-rbd-arg-stripe-unit"></span><code class="sig-name descname"><span class="pre">stripe_unit</span></code><code class="sig-prename descclassname"></code><a class="headerlink" href="#cmdoption-rbd-arg-stripe_unit" title="Permalink to this definition">¶</a></dt>
<dd><p>各条带单位是连续的字节，相邻地存储于同一对象，用满再去下一个对象。</p>
</dd></dl>

<dl class="std option">
<dt id="cmdoption-rbd-arg-stripe_count">
<span id="cmdoption-rbd-arg-stripe-count"></span><code class="sig-name descname"><span class="pre">stripe_count</span></code><code class="sig-prename descclassname"></code><a class="headerlink" href="#cmdoption-rbd-arg-stripe_count" title="Permalink to this definition">¶</a></dt>
<dd><p>我们把 [<em>stripe_unit</em>] 个字节写够 [<em>stripe_count</em>] 个对象后，再转回到第一个对象写另一轮条带，直到达到对象的最大尺寸。此时，我们继续写下一轮 [<em>stripe_count</em>] 个对象。</p>
</dd></dl>

<p>默认情况下， [<em>stripe_unit</em>] 和对象尺寸相同、且 [<em>stripe_count</em>] 为 1 ；
另外指定 [<em>stripe_unit</em>] 和/或 [<em>stripe_count</em>] 通常出现在使用 fancy 条带化时、
而且必须是 format 2 格式的映像。</p>
</div>
<div class="section" id="rbd-krbd">
<h2>内核 rbd (krbd) 选项<a class="headerlink" href="#rbd-krbd" title="Permalink to this headline">¶</a></h2>
<p>这里的大多数选项主要适用于调试和压力测试。默认值设置于内核中，因此还与所用内核的版本有关。</p>
<p>每个客户端例程的 <cite>rbd device map</cite> 选项：</p>
<ul class="simple">
<li><p>fsid=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee - 应该由客户端提供的 FSID 。</p></li>
<li><p>ip=a.b.c.d[:p] - IP 还有客户端可选的端口。</p></li>
<li><p>share - 允许与其它映射共享客户端例程（默认）。</p></li>
<li><p>noshare - 禁止与其它映射共享客户端例程。</p></li>
<li><p>crc - 对 msgr1 线上协议来说，启用 CRC32C 校验和（默认）；
对 msgr2.1 协议来说，会忽略此选项： crc 模式下总是完全开启校验和、 secure 模式下总是关闭。</p></li>
<li><p>nocrc - 对 msgr1 线上协议禁用 CRC32C 校验。注意，
只是禁用了载荷校验，头校验一直开启。
msgr2.1 协议忽略此选项。</p></li>
<li><p>cephx_require_signatures - 要求对 msgr1 消息签名（从 3.19 起默认开启）。此选项已废弃，且未来会删除，
因为此功能从 Bobtail 版起就支持了。</p></li>
<li><p>nocephx_require_signatures - 不要求对 msgr1 消息签名
（从 3.19 起）。此选项已废弃，且未来会删除，</p></li>
<li><p>tcp_nodelay - 在客户端禁用 Nagle’s 算法
（从 4.0 起默认开启）。</p></li>
<li><p>notcp_nodelay - 在客户端启用 Nagle’s 算法（从 4.0 起）。</p></li>
<li><p>cephx_sign_messages - 为 msgr1 协议启用消息签名
（从 4.4 起默认开启）。使用 msgr2 协议时会忽略此选项：
消息签名功能包含在 ‘secure’ 模式里、而 ‘crc’ 模式里没有。</p></li>
<li><p>nocephx_sign_messages - 为 msgr1 线路协议禁用消息签名
（从 4.4 起）。使用 msgr2 协议时会忽略此选项。</p></li>
<li><p>mount_timeout=x - 执行 <cite>rbd device map</cite> 和 <cite>rbd device unmap</cite>
时所涉及的各操作步骤的超时值（默认为 60 秒）。
特别是从 4.2 起，与集群间没有连接时，
即认为 <cite>rbd device unmap</cite> 操作超时了。</p></li>
<li><p>osdkeepalive=x - OSD 保持连接的期限（默认为 5 秒）。</p></li>
<li><p>osd_idle_ttl=x - OSD 闲置 TTL （默认为 60 秒）。</p></li>
</ul>
<p>每个映射（块设备）的 <cite>rbd device map</cite> 选项：</p>
<ul>
<li><p>rw - 以读写方式映射映像（默认）。会被 –read-only 覆盖。</p></li>
<li><p>ro - 以只读方式映射映像，等价于 –read-only 。</p></li>
<li><p>queue_depth=x - 队列深度（从 4.2 起默认为 128 个请求）。</p></li>
<li><p>lock_on_read - 除写入和 discard 操作外，读取时也要获取独占锁（从 4.9 起）。</p></li>
<li><p>exclusive - 禁止自动转换互斥锁（从 4.12 起）。
等价于 –exclusive 。</p></li>
<li><p>lock_timeout=x - 获取互斥锁的超时时长
（ 4.17 起支持，默认是 0 秒，意味着没有超时）。</p></li>
<li><p>notrim - 关闭 discard 、和填 0 功能，
以免全配映像的空间被收回（从 4.17 起支持）。
启用后， discard 请求会以 -EOPNOTSUPP 代码失败，
填 0 请求会回退成手动填 0 。</p></li>
<li><p>abort_on_full - 在集群空间用尽或数据存储池用完配额时让写请求以 -ENOSPC 代码失败（从 5.0 起支持）。
默认行为是阻塞着，直到占满条件释放。</p></li>
<li><p>alloc_size - OSD 底层对象存储后端的最小分配单元
（从 5.1 起支持，默认为 64KB ）。
这是用于对齐数据块和丢弃太小的 discard 操作。对于 bluestore ，
推荐的配置是 bluestore_min_alloc_size （一般来说，硬盘是 64K 、 SSD 是 16K ）；
filestore 用 filestore_punch_hole = false 配置，
推荐的配置是映像对象尺寸（一般是 4M ）。</p></li>
<li><p>crush_location=x - 指定客户端在 CRUSH 分级结构（从 5.8 起）里的位置。
这是用 ‘|’ 分隔的一系列键值对，键名和值之间用 ‘:’ 分隔。
注意， ‘|’ 可能得用引号包起来、或者转义（即 ‘|’ ），
以免被 shell 解释为管道。键名是桶类型的名字
（比如 rack 、 datacenter 、或者 region ，
它是默认桶类型）、而值对应桶名字。
例如，要表面客户端是本地的， rack 为 myrack 、
数据中心为 mydc 、 region 是 myregion:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">crush_location</span><span class="o">=</span><span class="n">rack</span><span class="p">:</span><span class="n">myrack</span><span class="o">|</span><span class="n">datacenter</span><span class="p">:</span><span class="n">mydc</span><span class="o">|</span><span class="n">region</span><span class="p">:</span><span class="n">myregion</span>
</pre></div>
</div>
<p>每一个键值对都是独立的： myrack 不一定位于 mydc 内、因此也不一定位于 myregion 内。
这个位置不是到分级结构根（ root ）的路径，而是一系列独立匹配到的节点，
多亏了桶名在 CRUSH 图里唯一这个特性。
多路径（ multipath ）位置也可以，因此可以为多个并行的分级结构定义位置：</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">crush_location</span><span class="o">=</span><span class="n">rack</span><span class="p">:</span><span class="n">myrack1</span><span class="o">|</span><span class="n">rack</span><span class="p">:</span><span class="n">myrack2</span><span class="o">|</span><span class="n">datacenter</span><span class="p">:</span><span class="n">mydc</span>
</pre></div>
</div>
</li>
<li><p>read_from_replica=no - 禁用副本读取，总是选取主 OSD
（从 5.8 起是默认行为）。</p></li>
<li><p>read_from_replica=balance - 向多副本存储池发出读取请求时，
随机选一个 OSD 提供服务（从 5.8 开始支持）。</p>
<p>只有在 Octopus 之后（即 <code class="docutils literal notranslate"><span class="pre">ceph</span> <span class="pre">osd</span> <span class="pre">require-osd-release</span> <span class="pre">octopus</span></code> 之后）的版本上，
这个模式才可以安全地作为一般用途。否则，就应该仅限于只读载荷，
比如只读地映射出去的映像、或快照。</p>
</li>
<li><p>read_from_replica=localize - 向多副本存储池发出读取请求时，
选最近的 OSD 提供服务（从 5.8 开始支持）。
位置指标根据客户端的 crush_location 位置计算出来；
匹配到的级别最低的桶类型胜出。例如，在默认的桶类型中，
一个匹配到 rack 的 OSD 比匹配到数据中心的 OSD 更近，
自然也比匹配到 region 的 OSD 近。</p>
<p>只有在 Octopus 之后（即 <code class="docutils literal notranslate"><span class="pre">ceph</span> <span class="pre">osd</span> <span class="pre">require-osd-release</span> <span class="pre">octopus</span></code> 之后）的版本上，
这个模式才可以安全地作为一般用途。否则，就应该仅限于只读载荷，
比如只读地映射出去的映像、或快照。</p>
</li>
<li><p>compression_hint=none - 不设置压缩提示（从 5.8 起支持，默认的）。</p></li>
<li><p>compression_hint=compressible - 提示底层的 OSD 对象存储后端，
告诉它数据可以压缩，在被动模式下启用了压缩功能
（从 5.8 起支持）。</p></li>
<li><p>compression_hint=incompressible - 提示底层的 OSD 对象存储后端，
告诉它数据不可压缩，在激进模式下禁用了压缩功能
（从 5.8 起支持）。</p></li>
<li><p>ms_mode=legacy - 采用 msgr1 线路协议（从 5.11 起支持，默认的）。</p></li>
<li><p>ms_mode=crc - 采用 msgr2.1 线路协议，选择 crc 模式，
也叫明文模式（从 5.11 起支持）。如果守护进程拒绝 crc 模式，
连接会失败。</p></li>
<li><p>ms_mode=secure - 采用 msgr2.1 线路协议，选择 secure 模式
（从 5.11 起支持）。 secure 模式提供了完整的传输加密，
可以同时确保保密性和真实性。如果守护进程拒绝 secure 模式，
连接会失败。</p></li>
<li><p>ms_mode=prefer-crc - 采用 msgr2.1 线路协议，选择 crc 模式
（从 5.11 起支持）。如果守护进程拒绝了 crc 模式而选择 secure 模式，
那就用 secure 模式。</p></li>
<li><p>ms_mode=prefer-secure - 采用 msgr2.1 线路协议，选择 secure 模式
（从 5.11 起支持）。如果守护进程拒绝了 secure 模式而选择 crc 模式，
那就用 crc 模式。</p></li>
<li><p>udev - 等着 udev 设备管理器，让它执行完所有能匹配 “add” 的规则、并在退出前释放设备（默认的）。
这个选项不是传递给内核的。</p></li>
<li><p>noudev - 不要等待 udev 设备管理器。打开此选项后，
退出之后，设备可能不会立即恢复完全可用的状态。</p></li>
</ul>
<p><cite>rbd device unmap</cite> 选项：</p>
<ul class="simple">
<li><p>force - 让某一已打开的块设备强制取消映射（从 4.9 起支持）。
其驱动会等待当前的请求完成之后再 unmap ；
在 unmap 初始化之后再发给驱动的请求会失败。</p></li>
<li><p>udev - 等着 udev 设备管理器，让它执行完所有能匹配 “add” 的规则、并在退出前释放设备（默认的）。
这个选项不是传递给内核的。</p></li>
<li><p>noudev - 不要等待 udev 设备管理器。</p></li>
</ul>
</div>
<div class="section" id="id8">
<h2>实例<a class="headerlink" href="#id8" title="Permalink to this headline">¶</a></h2>
<p>要新建一 100GB 的 rbd 映像：</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rbd</span> <span class="n">create</span> <span class="n">mypool</span><span class="o">/</span><span class="n">myimage</span> <span class="o">--</span><span class="n">size</span> <span class="mi">102400</span>
</pre></div>
</div>
<p>用个非默认对象尺寸，8 MB：</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rbd</span> <span class="n">create</span> <span class="n">mypool</span><span class="o">/</span><span class="n">myimage</span> <span class="o">--</span><span class="n">size</span> <span class="mi">102400</span> <span class="o">--</span><span class="nb">object</span><span class="o">-</span><span class="n">size</span> <span class="mi">8</span><span class="n">M</span>
</pre></div>
</div>
<p>删除一 rbd 映像（谨慎啊！）：</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rbd</span> <span class="n">rm</span> <span class="n">mypool</span><span class="o">/</span><span class="n">myimage</span>
</pre></div>
</div>
<p>新建快照：</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rbd</span> <span class="n">snap</span> <span class="n">create</span> <span class="n">mypool</span><span class="o">/</span><span class="n">myimage</span><span class="nd">@mysnap</span>
</pre></div>
</div>
<p>创建已保护快照的写时复制克隆：</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rbd</span> <span class="n">clone</span> <span class="n">mypool</span><span class="o">/</span><span class="n">myimage</span><span class="nd">@mysnap</span> <span class="n">otherpool</span><span class="o">/</span><span class="n">cloneimage</span>
</pre></div>
</div>
<p>查看快照有哪些克隆品：</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rbd</span> <span class="n">children</span> <span class="n">mypool</span><span class="o">/</span><span class="n">myimage</span><span class="nd">@mysnap</span>
</pre></div>
</div>
<p>删除快照：</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rbd</span> <span class="n">snap</span> <span class="n">rm</span> <span class="n">mypool</span><span class="o">/</span><span class="n">myimage</span><span class="nd">@mysnap</span>
</pre></div>
</div>
<p>启用 cephx 时通过内核映射一映像：</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rbd</span> <span class="n">device</span> <span class="nb">map</span> <span class="n">mypool</span><span class="o">/</span><span class="n">myimage</span> <span class="o">--</span><span class="nb">id</span> <span class="n">admin</span> <span class="o">--</span><span class="n">keyfile</span> <span class="n">secretfile</span>
</pre></div>
</div>
<p>要通过内核把某一映像映射到没用默认名字 <em>ceph</em> 的集群：</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rbd</span> <span class="n">device</span> <span class="nb">map</span> <span class="n">mypool</span><span class="o">/</span><span class="n">myimage</span> <span class="o">--</span><span class="n">cluster</span> <span class="n">cluster</span><span class="o">-</span><span class="n">name</span>
</pre></div>
</div>
<p>取消映像映射：</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rbd</span> <span class="n">device</span> <span class="n">unmap</span> <span class="o">/</span><span class="n">dev</span><span class="o">/</span><span class="n">rbd0</span>
</pre></div>
</div>
<p>创建一映像及其克隆品：</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rbd</span> <span class="kn">import</span> <span class="o">--</span><span class="n">image</span><span class="o">-</span><span class="nb">format</span> <span class="mi">2</span> <span class="n">image</span> <span class="n">mypool</span><span class="o">/</span><span class="n">parent</span>
<span class="n">rbd</span> <span class="n">snap</span> <span class="n">create</span> <span class="n">mypool</span><span class="o">/</span><span class="n">parent</span><span class="nd">@snap</span>
<span class="n">rbd</span> <span class="n">snap</span> <span class="n">protect</span> <span class="n">mypool</span><span class="o">/</span><span class="n">parent</span><span class="nd">@snap</span>
<span class="n">rbd</span> <span class="n">clone</span> <span class="n">mypool</span><span class="o">/</span><span class="n">parent</span><span class="nd">@snap</span> <span class="n">otherpool</span><span class="o">/</span><span class="n">child</span>
</pre></div>
</div>
<p>新建一 stripe_unit 较小的映像（在某些情况下可更好地分布少量写）：</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rbd</span> <span class="n">create</span> <span class="n">mypool</span><span class="o">/</span><span class="n">myimage</span> <span class="o">--</span><span class="n">size</span> <span class="mi">102400</span> <span class="o">--</span><span class="n">stripe</span><span class="o">-</span><span class="n">unit</span> <span class="mi">65536</span><span class="n">B</span> <span class="o">--</span><span class="n">stripe</span><span class="o">-</span><span class="n">count</span> <span class="mi">16</span>
</pre></div>
</div>
<p>要改变某一映像的格式，先导出它、然后再导入成期望的映像格式:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rbd</span> <span class="n">export</span> <span class="n">mypool</span><span class="o">/</span><span class="n">myimage</span><span class="nd">@snap</span> <span class="o">/</span><span class="n">tmp</span><span class="o">/</span><span class="n">img</span>
<span class="n">rbd</span> <span class="kn">import</span> <span class="o">--</span><span class="n">image</span><span class="o">-</span><span class="nb">format</span> <span class="mi">2</span> <span class="o">/</span><span class="n">tmp</span><span class="o">/</span><span class="n">img</span> <span class="n">mypool</span><span class="o">/</span><span class="n">myimage2</span>
</pre></div>
</div>
<p>互斥地锁住一映像：</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rbd</span> <span class="n">lock</span> <span class="n">add</span> <span class="n">mypool</span><span class="o">/</span><span class="n">myimage</span> <span class="n">mylockid</span>
</pre></div>
</div>
<p>释放锁：</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rbd</span> <span class="n">lock</span> <span class="n">remove</span> <span class="n">mypool</span><span class="o">/</span><span class="n">myimage</span> <span class="n">mylockid</span> <span class="n">client</span><span class="mf">.2485</span>
</pre></div>
</div>
<p>罗列垃圾桶里的映像：</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rbd</span> <span class="n">trash</span> <span class="n">ls</span> <span class="n">mypool</span>
</pre></div>
</div>
<p>推迟删除一个映像（用 <em>–expires-at</em> 设置一个过期时间，默认是现在）：</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rbd</span> <span class="n">trash</span> <span class="n">mv</span> <span class="n">mypool</span><span class="o">/</span><span class="n">myimage</span> <span class="o">--</span><span class="n">expires</span><span class="o">-</span><span class="n">at</span> <span class="s2">&quot;tomorrow&quot;</span>
</pre></div>
</div>
<p>从垃圾桶删除一个映像（谨慎啊！）：</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rbd</span> <span class="n">trash</span> <span class="n">rm</span> <span class="n">mypool</span><span class="o">/</span><span class="n">myimage</span><span class="o">-</span><span class="nb">id</span>
</pre></div>
</div>
<p>从垃圾桶强行删除一个映像（谨慎啊！）：</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rbd</span> <span class="n">trash</span> <span class="n">rm</span> <span class="n">mypool</span><span class="o">/</span><span class="n">myimage</span><span class="o">-</span><span class="nb">id</span>  <span class="o">--</span><span class="n">force</span>
</pre></div>
</div>
<p>从垃圾桶恢复一个映像：</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rbd</span> <span class="n">trash</span> <span class="n">restore</span> <span class="n">mypool</span><span class="o">/</span><span class="n">myimage</span><span class="o">-</span><span class="nb">id</span>
</pre></div>
</div>
<p>从垃圾桶恢复一个映像、并给它改个名字：</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">rbd</span> <span class="n">trash</span> <span class="n">restore</span> <span class="n">mypool</span><span class="o">/</span><span class="n">myimage</span><span class="o">-</span><span class="nb">id</span> <span class="o">--</span><span class="n">image</span> <span class="n">mynewimage</span>
</pre></div>
</div>
</div>
<div class="section" id="id9">
<h2>使用范围<a class="headerlink" href="#id9" title="Permalink to this headline">¶</a></h2>
<p><strong>rbd</strong> 是 Ceph 的一部分，这是个伸缩力强、开源、
分布式的存储系统，更多信息参见 <a class="reference external" href="https://docs.ceph.com">https://docs.ceph.com</a> 。</p>
</div>
<div class="section" id="id10">
<h2>参考<a class="headerlink" href="#id10" title="Permalink to this headline">¶</a></h2>
<p><a class="reference internal" href="../ceph/"><span class="doc">ceph</span></a>(8),
<a class="reference internal" href="../rados/"><span class="doc">rados</span></a>(8)</p>
</div>
</div>



           </div>
           
          </div>
          <footer>
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
        <a href="../rbd-fuse/" class="btn btn-neutral float-right" title="rbd-fuse – 把 rbd 映像展现为文件" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
        <a href="../../../rbd/man/" class="btn btn-neutral float-left" title="Ceph 块设备手册页" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
    </div>

  <hr/>

  <div role="contentinfo">
    <p>
        &#169; Copyright 2016, Ceph authors and contributors. Licensed under Creative Commons Attribution Share Alike 3.0 (CC-BY-SA-3.0).

    </p>
  </div> 

</footer>
        </div>
      </div>

    </section>

  </div>
  

  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script>

  
  
    
   

</body>
</html>